package com.hl.annotation.bean_init_02.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

/**
 * @Aspect 定义一个 切面
 *
 * @author liuhuan
 */
@Component
@Aspect
public class LiuHuanAspect {

    /**
     * 当执行 UserService.test() 之前，执行以下 切面逻辑代码
     */
    @Before("execution(public void com.hl.annotation.bean_init_02.service.UserService.test())")
    public void liuHuanBefore(JoinPoint joinPoint) {
        // joinPoint.getThis();     userService 的代理对象
        // joinPoint.getTarget();   原始的 userService 对象
        // 通过 debug, 执行 joinPoint.getThis() 查看对象类型是 普通对象 还是 代理对象
        System.out.println("aop liu huan before");
    }

}
